package es.deusto.ingenieria.tesoroaventurero;

import java.awt.Point;

public class Escenario {
	
	
	public static enum Sentido{
		ARRIBA,
		ABAJO,
		IZQUIERDA,
		DERECHA;
	}
	
	private Personaje personaje;
	private Casilla[][] casillas;
	private Casilla tesoro;
	
	public Escenario(){}
	
	public Escenario(Casilla[][] casillas, int tesoroX, int tesoroY) {
		this.casillas = casillas;
		this.personaje = new Personaje();
		this.personaje.setLocation(this.getCasilla(0, 0));
		
		this.tesoro = new Casilla();
		this.tesoro.x = tesoroX;
		this.tesoro.y = tesoroY;
	}

	public Personaje getPersonaje() {
		return personaje;
	}
	
	public void setPersonaje(Personaje personaje) {
		this.personaje = personaje;
	}
	public Casilla[][] getCasillas() {
		return casillas;
	}
	
	public Casilla getCasilla(int x, int y){
		return this.casillas[y][x];
	}
	
	public void setCasillas(Casilla[][] casillas) {
		this.casillas = casillas;
	}
	

	
	public Point getTesoro() {
		return tesoro;
	}
	
	public void setTesoro(Casilla tesoro) {
		this.tesoro = tesoro;
	}
	
	public boolean equals (Object obj){
		if (obj != null  &&  obj instanceof Escenario)
		{
			return ((Escenario)obj).personaje.equals(this.personaje);   // comparacion a pelo
		}
		else
		{
			return false;
		}
	}
	
	public Escenario clone() {
		Escenario newEscenario = new Escenario();
		
		newEscenario.casillas = this.casillas;
		newEscenario.tesoro = tesoro;
		
		newEscenario.personaje = new Personaje();
		newEscenario.personaje.x = this.personaje.x;
		newEscenario.personaje.y = this.personaje.y;
		
		return newEscenario;
	}
	
	public String toString(){
		return "Estoy en: " + this.personaje.x + "-" + this.personaje.y; 
	}
}
